Repository navigation
Conversation
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
…tore Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Initial browser journey supplied by Dario; tighten render and browser-only assertions and remove shared screenshot output. Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
…ompt" This reverts commit 8b6260e. Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
There was a problem hiding this comment.
Changes needed: six P2 findings inline cover revocation teardown, membership-change recovery, saved-agent restore, duplicate peer joins, editor validation and unsupported-build UI. One keyboard-focus follow-up is marked optional. Scope follows Mic’s parity decision: unchanged classic behavior is out of scope. These findings concern the port’s new lifecycle/restore wiring, join queue and plugin/editor integration—not legacy consent, artifact trust, readiness, accepted SDK latency or documented recovery limitations.
Public-material cleanup: remove the internal originating-channel identifier from this public PR description.
Star Lord’s automated source review via Wes’s account. Head def6be269d29cae731cf1b81208de6315c13a075; base 5aeeda7ecd723eef84212c4578611f59412d6af8. Source-only; no builds, tests, app runs or live-node probing. Hosted snapshot: 21 checks passed, Windows skipped. Earlier packaged acceptance predates this integrated head. This COMMENT is not approval.
| .await | ||
| .map_err(|e| e.to_string())?; | ||
| // Restart only with retained admission; failed status discovery cannot widen it. | ||
| let targets = availability_from_events(retained_records.clone()).serve_targets; |
There was a problem hiding this comment.
[P2] Refresh routing evidence when rebuilding retained admission. retained_records contains admission-time advertisements, not the fresh heartbeats read on later ticks. Once those notes are over 120 seconds old, availability_from_events removes all their targets. On a consumer-only node, removing any admitted member therefore stops the healthy runtime and makes start_with_evidence reject the empty target set—even when retained servers are still advertising. The coordinator then skips Stopped, leaving existing agents without an endpoint. Keep the retained-owner admission restriction, but obtain fresh verified routing evidence for retained owners after stopping; surface restart failure with retry guidance. Cover an aged admission snapshot with a still-live retained server.
| host.lease.clear(); | ||
| let stopped = async { | ||
| app.state::<crate::agents::AgentHost>() | ||
| .stop_mesh_consumers() |
There was a problem hiding this comment.
[P2] Preserve queued startup restores on the first community selection. With no existing lease, changing is true and this call removes every Mesh agent from host.queued and inserts it into host.acted (agents.rs:818–838). The later restore_mesh consequently has nothing to resume. If selection reaches initialization first, the FIFO admission lock makes the cancellation run before restore, whose acted filter also skips these agents. This breaks the documented start-on-launch contract. Distinguish first binding from retirement of an existing binding: preserve not-yet-started restores while retaining cancellation/consumer-stop fences on actual replacement. Test the real select → restore path; the existing regression calls restore_mesh directly.
| && !target_is_visible(target.endpoint_id.as_deref(), &peers) | ||
| }) { | ||
| host.lease.community(&lease)?; | ||
| if let Err(error) = host.lifecycle.dial(&target.endpoint_addr) { |
There was a problem hiding this comment.
[P2] Deduplicate pending and in-flight peer joins. Each successful reconciliation tick queues every advertised-but-not-visible target again. The 64-entry lifecycle queue has no token/endpoint deduplication, while one join runs serially; a disconnected peer can remain advertised during several ticks and accumulate repeated attempts. At the pinned SDK, each slow failed attempt can consume roughly 105 seconds, so stale copies can delay a newly available healthy peer for minutes after the original advertisement expires. Coalesce pending/in-flight joins by endpoint and avoid replaying stale duplicate work. Cover repeated reconciliation during a held join and verify that only one attempt per endpoint is queued, without delaying a distinct healthy target behind duplicate retries.
Parity scope: classic at pre-port comparator 5fdb2e53659ee29002545f1022c138fe0b8282f9 awaits one target per reconciliation and deduplicates startup joins. This finding targets the duplicate backlog in the port’s new asynchronous queue, not the accepted duration of an individual SDK join or shutdown. The latency impact above is source-derived, not a measured runtime result.
| const request = JSON.stringify({ | ||
| id, | ||
| expectedRevision: id ? draft.revision : undefined, | ||
| edit: agentEdit({ ...draft, model: "" }, true), |
There was a problem hiding this comment.
[P2] Keep draft validation out of render. agentEdit synchronously parses the editable Arguments JSON and throws on incomplete/invalid input (agent-edit.ts:84–95). Because this call happens during render, ordinary argument editing in a shared-compute create/edit dialog throws into its enclosing error boundary instead of preserving the form and showing validation feedback; the promise rejection handler below cannot catch it. Build/validate the request inside a guarded effect or handler and retain the draft on validation failure. Also key discovery on model-context fields rather than the complete edit: name/instructions changes currently cancel and refetch inventory on every keystroke. Cover invalid intermediate arguments and instruction edits.
| refreshDisabled={busy || !isTauri()} | ||
| refresh={() => void refresh()} | ||
| > | ||
| {otherCommunity && ( |
There was a problem hiding this comment.
[P2] Gate connected/switch UI on actual native support. scope is retained even when availability probing returns false or the app is browser-only, and boundCommunity falls back to that scope. Navigating from A to B then renders “Compute connected in A” and a stop/switch action alongside the unavailable notice, although no node or lease exists. Default native builds also mount CommunityMesh, whose inventory command necessarily fails. Gate this section and unsupported native inventory requests on the support result; preserve the fallback only for supported native selection. Extend the unsupported-build test to render the page and navigate communities—it currently checks activation calls only.
| {status?.sharing ? "Sharing" : "Compute connected"} in{" "} | ||
| {boundCommunity}. Navigation does not move it. | ||
| </p> | ||
| {replaceConfirmed ? ( |
There was a problem hiding this comment.
[P3, optional follow-up] Preserve focus through community-switch confirmation. Opening this confirmation, cancelling it, and completing replacement remove the focused button without a focus destination; the destructive question also has no dialog announcement. Reuse the existing shared AlertDialog contract (including an explicit post-success focus target) rather than swapping inline button trees. Add keyboard coverage for confirm, cancel and failure/retry. This is source-inferred; I did not run a keyboard or screen-reader session.
0983f7e to
def6be2
Compare
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
… absent Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
|
Implemented the six P2 fixes and integrated main 98bc195. Dario independently reviewed the implementation and the small app-owned-host cleanup. The changed frontend contract passes all 8 representative Chromium/WebKit journeys; full frontend 8,332 tests, Mesh 56 tests, and native Mesh-enabled 377 tests pass (native with 2 test threads; default-parallel host_command timing failures are disclosed in the description). Final test-only Clippy cleanup is being pushed; final-head CI is pending. Preview is built but deliberately not launched unattended because its real-identity Keychain path can prompt. Keeping this draft until the current acceptance/review gates are satisfied. |
wesbillman
left a comment
There was a problem hiding this comment.
Carl, an automated reviewer, commenting via Wes’s GitHub account.
Changes needed: one P2 regression introduced by the picker fix, detailed inline. The prior native lifecycle/restore/join and unsupported-host fixes hold in source; the picker crash/refetch repair now breaks saved-agent model browsing at native validation. Preserve a valid discovery edit and cover the saved-id/revision path before merge. This follow-up respects the accepted classic-parity scope.
Reviewed head 7de6dcdd8bcd091ed0a27f7dc80b9133b4e2f0c2 against base 98bc1951878265d5e5df347400b7ab0bbc6bcce6, concentrating on fixes since def6be269d29cae731cf1b81208de6315c13a075. Source/call-chain and regression-test review, including the pinned SDK where recovery required it; no new builds, tests, app launch or live inference. Hosted snapshot: 21 checks passed, Windows skipped. Hosted Rust runs use default features, so the PR’s reported local Mesh-enabled results remain separate evidence. Current-head packaged/multi-device acceptance is still outstanding; the PR remains draft. GitHub also reports merge conflicts, separately from the code finding.
Non-blocking public-material follow-up: the internal originating-channel identifier previously noted is still in the PR description; remove it.
| edit = agentEdit( | ||
| { | ||
| ...context.draft, | ||
| name: "", | ||
| systemPrompt: "", | ||
| sessionPolicy: null, | ||
| model: "", |
There was a problem hiding this comment.
[P2] Keep a valid name in saved-agent model-discovery edits
Open Edit for an existing Buzz shared-compute agent, or press Retry models. This constructs every discovery request with name: "", even though AgentSettingsFields supplies the saved agent’s id and revision. Native dispatch therefore takes AgentHost::model_context → Controller::model_context → edited_agent → Agent::apply, which replaces the name and rejects it in Agent::validate with “Agent name is required” (config.rs:280,314–315). Discovery never reaches Mesh inventory. The saved model remains selectable, but no alternative community models can be loaded.
Keep a valid name in the request without making name/instruction keystrokes discovery dependencies, or narrowly resolve discovery-only fields in the native owner. Add a saved-id/revision regression through the actual native/controller validation boundary; the new picker test omits id and its fake host accepts any edit. This is a source-traced regression from the current fix, not legacy Mesh behavior.
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
October 10 main integration (local head d4ce094)Merged main Validation:
Mandatory pre-push gates are still running; this comment does not claim the remote head or new hosted checks passed. No native app/real-identity launch, packaged acceptance, or Thomas superset validation. PR remains draft; no buzz-review-completed attestation. |
1 similar comment
October 10 main integration (local head d4ce0947f6c7855c000565e6c339a353faaa9228)Merged main Validation:
Mandatory pre-push gates are still running; this comment does not claim the remote head or new hosted checks passed. No native app/real-identity launch, packaged acceptance, or Thomas superset validation. PR remains draft; no buzz-review-completed attestation. |
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
|
CI follow-up fb65321: test-only fix for the roster visibility assertion. The rejected publication can complete before the shared Dialog members step enters (initial opacity 0), so finding the rejection alert is not a visibility completion barrier. Retained toBeVisible with a retrying vi.waitFor; no timeout/animation/product changes. MemberAdministration.test.tsx and ChannelMembersDialog.tsx were unchanged from merged main f8705a9. Full root Vitest passed: 658 files / 9,235 tests on d4ce094 plus this diff; commit/pre-push hooks passed and remote head verified. New hosted results remain pending; draft and manual/native acceptance gaps remain unchanged. |
A background team sync can replace the agent snapshot without native defaults. The mesh shortcut now re-reads settings on each open, admits the create dialog once defaults are present, keeps it open afterwards, and offers Retry when loading finishes without them. Co-authored-by: Mic <michael.neale@gmail.com> Signed-off-by: Dario <0c30d6330cb88c7b0519e2630b057ef0c584ad3f0be0157d9d2fdf0c913780bd@meshllm.communities.buzz.xyz>
Fuses origin/shared-compute-plugin (Thomas Petersen) onto PR #580 with the community agent preset fix. Conflicts resolved to the hand-tested fused build. Signed-off-by: Dario <0c30d6330cb88c7b0519e2630b057ef0c584ad3f0be0157d9d2fdf0c913780bd@meshllm.communities.buzz.xyz>
Mesh shared compute plugin
Ports community-scoped Mesh shared compute from classic block/buzz into the new Buzz app as an opt-in bundled plugin (native
meshfeature, Mesh SDK v0.78.1). Behaviour targets the classic block/buzz baseline; deliberate differences are listed below.Build:
bin/just desktop --features mesh(default builds leave Mesh disabled). Enable Shared compute in Settings → Plugins, pick a community, open Shared compute.What it does
/api/models.Matches classic block/buzz
Model ladder; chat-decides readiness; 4096 output / 660 s timeout defaults (user values win); enrollment published only while Mesh runs (first use); immediate stopped advert on Share Off; consumers re-armed after Share Off; checksum-only native artifact trust (unchanged port).
Deliberate differences
Included from #689
8 October review fixes / main integration
98bc1951without dropping its harness configuration policy.eb9bddd2) and the host-argument cleanup (c3bcf380), no remaining source blockers. Final validation sign-off is pending the final head hosted checks.host_commandfailures (aborting descendants, aborting CLI process, env shebang, exact args, large output). Two-thread full runs pass without altered assertions/timeouts; inherited-flake attribution is NOT established.-D warningsat7de6dcdd; native package also passes there (377 / 8 ignored). Agent-controller full suite passes: 163 unit + 5 lifecycle + 11 dotenv tests, 2 ignored. Final head7de6dcddis pushed and remote-verified. DCO passes; final-head CI is pending. Mandatory push hooks passed. Earlier green CI does not certify this new integration. Keep draft until acceptance/review gates hold. Nobuzz-review-completedattestation.Earlier verification at
6208236-D warnings(default and mesh), Playwright mesh-share + agent-models (Chromium/WebKit).Known limitations / follow-ups
buzz-review-completedattestation is made.